#ifndef INTERACTIVEOBJECT_HPP
#define INTERACTIVEOBJECT_HPP

#include <SDL/SDL.h>
#include "DisplayObject.hpp"

class InteractiveObject : public DisplayObject 
{
public:    
    InteractiveObject();
    virtual ~InteractiveObject();

    virtual std::string toString(const std::string &more = "InteractiveObject") const
    {
        TRACEIN;
        std::stringstream ss;
        ss << DisplayObject::toString(more) << "\n";
        ss << "\tthread: " << thread << "\n";
        ss << "\trunning_thread: " << (running_thread ? "true" : "false");
        TRACEOUT;
        return ss.str();
    }

private:
    static int Update(void *data);
    static SDL_Thread *thread;
    bool running_thread;
};

#endif 
